﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataAccess;
using System.Data.SqlClient;
using System.Data;
using Support.DTO;

namespace DataAccess
{
    public class ExamenVariosDAL : BaseSQLDAL
    {
        public int GuardarExamenVarios(ExamenVariosDTO examen)
        {
            try
            {
                CreateCommand("ExamenVarios_Guardar", true);
                AddCmdParameter("@Craneo", string.IsNullOrEmpty(examen.Craneo) ? "" : examen.Craneo, ParameterDirection.Input);
                AddCmdParameter("@Ojo", string.IsNullOrEmpty(examen.Ojo) ? "" : examen.Ojo, ParameterDirection.Input);
                AddCmdParameter("@Oido", string.IsNullOrEmpty(examen.Oido) ? "" : examen.Oido, ParameterDirection.Input);
                AddCmdParameter("@PCFG", string.IsNullOrEmpty(examen.PCFG) ? "" : examen.PCFG, ParameterDirection.Input);
                AddCmdParameter("@ToraxForma", string.IsNullOrEmpty(examen.ToraxForma) ? "" : examen.ToraxForma, ParameterDirection.Input);
                AddCmdParameter("@ToraxMamas", string.IsNullOrEmpty(examen.ToraxMamas) ? "" : examen.ToraxMamas, ParameterDirection.Input);
                AddCmdParameter("@AuscultacionMV", string.IsNullOrEmpty(examen.AuscultacionMV) ? "" : examen.AuscultacionMV, ParameterDirection.Input);
                AddCmdParameter("@AuscultacionVV", string.IsNullOrEmpty(examen.AuscultacionVV) ? "" : examen.AuscultacionVV, ParameterDirection.Input);
                AddCmdParameter("@Rales", string.IsNullOrEmpty(examen.Rales) ? "" : examen.Rales, ParameterDirection.Input);
                AddCmdParameter("@Excursion", string.IsNullOrEmpty(examen.Excursion) ? "" : examen.Excursion, ParameterDirection.Input);
                AddCmdParameter("@R1", string.IsNullOrEmpty(examen.R1) ? "" : examen.R1, ParameterDirection.Input);
                AddCmdParameter("@R2", string.IsNullOrEmpty(examen.R2) ? "" : examen.R2, ParameterDirection.Input);
                AddCmdParameter("@Soplos", string.IsNullOrEmpty(examen.Soplos) ? "" : examen.Soplos, ParameterDirection.Input);
                AddCmdParameter("@Carotideo", string.IsNullOrEmpty(examen.Carotideo) ? "" : examen.Carotideo, ParameterDirection.Input);
                AddCmdParameter("@Radial", string.IsNullOrEmpty(examen.Radial) ? "" : examen.Radial, ParameterDirection.Input);
                AddCmdParameter("@Femoral", string.IsNullOrEmpty(examen.Femoral) ? "" : examen.Femoral, ParameterDirection.Input);
                AddCmdParameter("@Pedio", string.IsNullOrEmpty(examen.Pedio) ? "" : examen.Pedio, ParameterDirection.Input);
                AddCmdParameter("@PPRenalDerecha", string.IsNullOrEmpty(examen.PPRenalDerecha) ? "" : examen.PPRenalDerecha, ParameterDirection.Input);
                AddCmdParameter("@PPRenalIzquierda", string.IsNullOrEmpty(examen.PPRenalIzquierda) ? "" : examen.PPRenalIzquierda, ParameterDirection.Input);
                AddCmdParameter("@PPRenalMamas", string.IsNullOrEmpty(examen.PPRenalMamas) ? "" : examen.PPRenalMamas, ParameterDirection.Input);
                AddCmdParameter("@HistoriaId", examen.HistoriaId, ParameterDirection.Input);
                
                ExecuteReader();
                Read();

                return Convert.ToInt32(GetOutResult("examenVarios_id"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                DisposeCommand();
                //DisposeDataReader();
                CloseConnection();
            }
        }

        public void Modificar(ExamenVariosDTO examen)
        {
            try
            {
                CreateCommand("ExamenVarios_Modificar", true);
                AddCmdParameter("@Craneo", string.IsNullOrEmpty(examen.Craneo) ? "" : examen.Craneo, ParameterDirection.Input);
                AddCmdParameter("@Ojo", string.IsNullOrEmpty(examen.Ojo) ? "" : examen.Ojo, ParameterDirection.Input);
                AddCmdParameter("@Oido", string.IsNullOrEmpty(examen.Oido) ? "" : examen.Oido, ParameterDirection.Input);
                AddCmdParameter("@PCFG", string.IsNullOrEmpty(examen.PCFG) ? "" : examen.PCFG, ParameterDirection.Input);
                AddCmdParameter("@ToraxForma", string.IsNullOrEmpty(examen.ToraxForma) ? "" : examen.ToraxForma, ParameterDirection.Input);
                AddCmdParameter("@ToraxMamas", string.IsNullOrEmpty(examen.ToraxMamas) ? "" : examen.ToraxMamas, ParameterDirection.Input);
                AddCmdParameter("@AuscultacionMV", string.IsNullOrEmpty(examen.AuscultacionMV) ? "" : examen.AuscultacionMV, ParameterDirection.Input);
                AddCmdParameter("@AuscultacionVV", string.IsNullOrEmpty(examen.AuscultacionVV) ? "" : examen.AuscultacionVV, ParameterDirection.Input);
                AddCmdParameter("@Rales", string.IsNullOrEmpty(examen.Rales) ? "" : examen.Rales, ParameterDirection.Input);
                AddCmdParameter("@Excursion", string.IsNullOrEmpty(examen.Excursion) ? "" : examen.Excursion, ParameterDirection.Input);
                AddCmdParameter("@R1", string.IsNullOrEmpty(examen.R1) ? "" : examen.R1, ParameterDirection.Input);
                AddCmdParameter("@R2", string.IsNullOrEmpty(examen.R2) ? "" : examen.R2, ParameterDirection.Input);
                AddCmdParameter("@Soplos", string.IsNullOrEmpty(examen.Soplos) ? "" : examen.Soplos, ParameterDirection.Input);
                AddCmdParameter("@Carotideo", string.IsNullOrEmpty(examen.Carotideo) ? "" : examen.Carotideo, ParameterDirection.Input);
                AddCmdParameter("@Radial", string.IsNullOrEmpty(examen.Radial) ? "" : examen.Radial, ParameterDirection.Input);
                AddCmdParameter("@Femoral", string.IsNullOrEmpty(examen.Femoral) ? "" : examen.Femoral, ParameterDirection.Input);
                AddCmdParameter("@Pedio", string.IsNullOrEmpty(examen.Pedio) ? "" : examen.Pedio, ParameterDirection.Input);
                AddCmdParameter("@PPRenalDerecha", string.IsNullOrEmpty(examen.PPRenalDerecha) ? "" : examen.PPRenalDerecha, ParameterDirection.Input);
                AddCmdParameter("@PPRenalIzquierda", string.IsNullOrEmpty(examen.PPRenalIzquierda) ? "" : examen.PPRenalIzquierda, ParameterDirection.Input);
                AddCmdParameter("@PPRenalMamas", string.IsNullOrEmpty(examen.PPRenalMamas) ? "" : examen.PPRenalMamas, ParameterDirection.Input);
                AddCmdParameter("@HistoriaId", examen.HistoriaId, ParameterDirection.Input);

                ExecuteReader();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                DisposeCommand();
                //DisposeDataReader();
                CloseConnection();
            }
        }


        public void Eliminar(int historiaId)
        {
            try
            {
                CreateCommand("ExamenVarios_Eliminar", true);
                AddCmdParameter("@HistoriaId", historiaId, ParameterDirection.Input);

                ExecuteReader();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                DisposeCommand();
                //DisposeDataReader();
                CloseConnection();
            }
        }
    }
}
